<html xmlns="http://www.w3.org/1999/xhtml"  
      xmlns:h="http://java.sun.com/jsf/html"  
      xmlns:f="http://java.sun.com/jsf/core"  
      xmlns:p="http://primefaces.org/ui"
      xmlns:ui="http://java.sun.com/jsf/facelets"> 

    <ui:composition template="../index.xhtml" >
        <ui:define name="conteudo" >
            <h:form>
                <p:messages/>
                <h:inputHidden value="#{nfeEntradaControler.nfe_entrada_cabecalho.id}"/>
                <p:wizard widgetVar="wiz" nextLabel="Próximo" backLabel="Anterior">  
                    <p:tab id="produto" title="Dados da Nota Fiscal">
                        <p:panel header="Dados da Nota Fiscal">
                            <h:messages errorClass="error"/>
                            <h:panelGrid columns="2">

                                <h:panelGrid columns="1">
                                    <h:outputText value="Número NF-e "/>
                                    <p:inputText value="#{nfeEntradaControler.nfe_entrada_cabecalho.numeroNfe}" rendered="true" requiredMessage="o número da Nf-e é obrigatório!!"/>
                                </h:panelGrid>

                                <h:panelGrid columns="1">
                                    <h:outputText value="Série: "/>
                                    <p:inputText value="#{nfeEntradaControler.nfe_entrada_cabecalho.serie}" />
                                </h:panelGrid>

                                <h:panelGrid columns="1">
                                    <h:outputText value="Chave de acesso: "/>
                                    <p:inputText value="#{nfeEntradaControler.nfe_entrada_cabecalho.chaveAcesso}" maxlength="44"/>
                                </h:panelGrid>

                                <h:panelGrid columns="1">
                                    <h:outputText value="Data de emissão: "/>
                                    <p:calendar value="#{nfeEntradaControler.nfe_entrada_cabecalho.dataEmissao}" navigator="true" locale="pt" showButtonPanel="true" showOn="button" pattern="dd/MM/yyyy"/>
                                </h:panelGrid>

                                <h:panelGrid columns="1">
                                    <h:outputText value="Data de saida: "/>
                                    <p:calendar value="#{nfeEntradaControler.nfe_entrada_cabecalho.dataSaida}" navigator="true" locale="pt" showButtonPanel="true" showOn="button" pattern="dd/MM/yyyy"/>
                                </h:panelGrid>

                                <h:panelGrid columns="1" id="Forn" >
                                    <h:outputText value="Fornecedor: "/>
                                    <p:autoComplete value="#{nfeEntradaControler.txt2}" forceSelection="true"
                                                    completeMethod="#{nfeEntradaControler.completeFornecedor}" size="50">
                                        <p:ajax event="itemSelect" listener="#{nfeEntradaControler.handleSelectFornecedor}" update="Forn" />
                                    </p:autoComplete>
                                </h:panelGrid>

                            </h:panelGrid>

                        </p:panel>
                    </p:tab>

                    <p:tab id="cliente" title="Produtos">
                        <p:panel header="Produtos">
                            <h:panelGrid columns="6">
                                <h:panelGrid columns="1">
                                    Código:
                                    <p:inputText value="#{nfeEntradaControler.produto.gtin}" maxlength="13" size="15">
                                        <p:ajax event="blur" listener="#{nfeEntradaControler.retornProdutoPorCodigo()}" update="@form"/>
                                    </p:inputText>
                                </h:panelGrid>
                                <h:panelGrid columns="1">
                                    Descrição:
                                    <p:autoComplete id="acForce" value="#{nfeEntradaControler.txt1}" forceSelection="true"
                                                    completeMethod="#{nfeEntradaControler.complete}" size="80">
                                        <p:ajax event="itemSelect" listener="#{nfeEntradaControler.handleSelect}" />
                                        <p:ajax event="itemSelect" update="@form" />
                                    </p:autoComplete>
                                </h:panelGrid>
                                <h:panelGrid columns="1">
                                    Vlr.Unitário:
                                    <p:selectOneMenu value="#{nfeEntradaControler.nfe_entrada_detalhe.idUnidadeProduto.id}">  
                                        <f:selectItems value="#{unidadeMedidaControler.listUnidade}" var="sit" itemValue="#{sit.id}" itemLabel="#{sit.nome}"/> 
                                    </p:selectOneMenu>
                                </h:panelGrid>
                                <h:panelGrid columns="1">
                                    Unidade: 
                                    <p:inputText value="#{nfeEntradaControler.produto.valorVenda}" size="8" disabled="true"/> 
                                </h:panelGrid>
                                <h:panelGrid columns="1">
                                    Quantidade:
                                    <p:inputText value="#{nfeEntradaControler.nfe_entrada_detalhe.quantidade}" maxlength="5" size="8"/> 
                                </h:panelGrid>
                                <h:panelGrid columns="1">
                                    <h:outputText value="." style="color: white;"/>
                                    <p:commandButton value="Ok" action="#{nfeEntradaControler.adicionaItem()}" update="@form"/> 
                                </h:panelGrid>
                            </h:panelGrid>
                            <p:separator/>
                            <!--           TABELA DOS ITENS ADICIONADOS                 -->
                            <p:dataTable id="listContasPagar" var="forn" value="#{nfeEntradaControler.nfe_entrada_cabecalho.listDetalhe}" widgetVar="carsTableAtivos" 
                                         emptyMessage="Nenhum registro foi encontrado!" >
                                <f:facet name="header" >  
                                    <p:outputPanel>  
                                        <h:outputText value="Digite para pesquisar " />
                                        <p:inputText id="globalFilter" onkeyup="carsTableAtivos.filter()" style="width:150px" /> 
                                    </p:outputPanel>  
                                </f:facet>  
                                <p:column headerText="Ações" footerText="Ações" filterMatchMode="Ações" style="width: 30px;">  
                                    <p:commandButton value="Excluir" action="#{nfeEntradaControler.removeItem(forn.idProduto.id)}" ajax="false"/>
                                </p:column>
                                <p:column filterBy="${forn.idProduto.gtin}" headerText="Código produto" sortBy="${forn.idProduto.gtin}">    
                                    <h:outputText value="${forn.idProduto.gtin}" />  
                                </p:column>  
                                <p:column filterBy="${forn.idProduto.descricao}" headerText="Descrição" sortBy="${forn.idProduto.descricao}">    
                                    <h:outputText value="${forn.idProduto.descricao}" />  
                                </p:column>  
                                <p:column filterBy="${forn.idProduto.valorVenda}" headerText="Valor Unitário" sortBy="${forn.idProduto.valorVenda}">    
                                    <h:outputText value="${forn.idProduto.valorVenda}">
                                        <f:convertNumber type="currency"  currencySymbol='R$'/> 
                                    </h:outputText>
                                </p:column>  
                                <p:column filterBy="${forn.quantidade}" headerText="Quantidade" sortBy="${forn.quantidade}">    
                                    <h:outputText value="${forn.quantidade}" />  
                                </p:column>  
                                <p:column filterBy="${forn.idProduto.valorVenda * forn.quantidade}" headerText="Total" sortBy="${forn.idProduto.valorVenda * forn.quantidade}" footerText="Total geral: #{nfeEntradaControler.nfe_entrada_cabecalho.valorTotalProdutos}">    
                                    <h:outputText value="${forn.idProduto.valorVenda * forn.quantidade}" >
                                        <f:convertNumber type="currency"  currencySymbol='R$'/> 
                                    </h:outputText>
                                </p:column>  
                            </p:dataTable>
                        </p:panel>
                    </p:tab>
                    <p:tab title="Totais">
                        <p:panel header="Totais">
                            <h:panelGrid columns="4">
                                <h:panelGrid columns="1">
                                    <h:outputText value="Base da calculo de ICMS"/>
                                    <p:inputText value="#{nfeEntradaControler.nfe_entrada_cabecalho.baseCalculoIcms}"/>
                                </h:panelGrid>

                                <h:panelGrid columns="1">
                                    <h:outputText value="valor total dos produtos"/>
                                    <p:inputText value="#{nfeEntradaControler.nfe_entrada_cabecalho.valorTotalProdutos}"/>
                                </h:panelGrid>

                                <h:panelGrid columns="1">
                                    <h:outputText value="valor total IPI"/>
                                    <p:inputText value="#{nfeEntradaControler.nfe_entrada_cabecalho.valorTotalIpi}"/>
                                </h:panelGrid>

                                <h:panelGrid columns="1">
                                    <h:outputText value="valor do PIS"/>
                                    <p:inputText value="#{nfeEntradaControler.nfe_entrada_cabecalho.valorPis}"/>
                                </h:panelGrid>

                                <h:panelGrid columns="1">
                                    <h:outputText value="Valor do ICMS"/>
                                    <p:inputText value="#{nfeEntradaControler.nfe_entrada_cabecalho.valorIcms}"/>
                                </h:panelGrid>

                                <h:panelGrid columns="1">
                                    <h:outputText value="valor do frete"/>
                                    <p:inputText value="#{nfeEntradaControler.nfe_entrada_cabecalho.valorFrete}"/>
                                </h:panelGrid>

                                <h:panelGrid columns="1">
                                    <h:outputText value="valor total NF-e"/>
                                    <p:inputText value="#{nfeEntradaControler.nfe_entrada_cabecalho.valorTotalNfe}"/>
                                </h:panelGrid>

                                <h:panelGrid columns="1">
                                    <h:outputText value="valor da COFINS"/>
                                    <p:inputText value="#{nfeEntradaControler.nfe_entrada_cabecalho.valorCofins}"/>
                                </h:panelGrid>

                                <h:panelGrid columns="1" >
                                    <h:outputText value="Base de calculo ICMS ST"/>
                                    <p:inputText value="#{nfeEntradaControler.nfe_entrada_cabecalho.baseCalculoIcmsSt}"/>
                                </h:panelGrid>

                                <h:panelGrid columns="1">
                                    <h:outputText value="valor do seguro"/>
                                    <p:inputText value="#{nfeEntradaControler.nfe_entrada_cabecalho.valorSeguro}"/>
                                </h:panelGrid>

                                <h:panelGrid columns="1">
                                    <h:outputText value="valor total descontos"/>
                                    <p:inputText value="#{nfeEntradaControler.nfe_entrada_cabecalho.valorTotalDescontos}"/>
                                </h:panelGrid>

                                <h:panelGrid columns="1">
                                    <h:outputText value="Valor ICMS substituição"/>
                                    <p:inputText value="#{nfeEntradaControler.nfe_entrada_cabecalho.valorIcmsSubstituicao}"/>
                                </h:panelGrid>

                                <h:panelGrid columns="1">
                                    <h:outputText value="Otras despesas acessórios"/>
                                    <p:inputText value="#{nfeEntradaControler.nfe_entrada_cabecalho.valorOutrasDespesas}"/>
                                </h:panelGrid>

                                <h:panelGrid columns="1">
                                    <h:outputText value="valor total do II"/>
                                    <p:inputText value="#{nfeEntradaControler.nfe_entrada_cabecalho.valorTotalIi}"/>
                                </h:panelGrid>
                            </h:panelGrid>
                            <p:commandButton value="Salvar" action="#{nfeEntradaControler.salvar()}" update="@form" onclick="statusDialog.show();" onsuccess="statusDialog.hide();"/>
                            <p:commandButton value="Cancelar" action="#{nfeEntradaControler.InicializaObj()}" onclick="confirmationExcluirNFE.show();"/>

                            <!-- confirmações  de exclusão-->
                            <p:confirmDialog id="confirmDialog" message="Confirma cancelar a digitação / edição desta NF-e?" appendToBody="true"
                                             header="Atenção!!!" severity="alert" widgetVar="confirmationExcluirNFE" >  
                                <p:commandButton id="confirm" value="Sim" oncomplete="confirmationExcluirNFE.hide()"  
                                                 actionListener="#{nfeEntradaControler.InicializaObj()}" update="@form" onclick="statusDialog.show();" onsuccess="statusDialog.hide();"/>  
                                <p:commandButton id="decline" value="Cancelar" onclick="confirmationExcluirNFE.hide()" type="button" />   
                            </p:confirmDialog>
                        </p:panel>
                    </p:tab>
                </p:wizard>
            </h:form>
        </ui:define>
    </ui:composition>
</html>